About Cosense
Help
Log in
mrsekut-p
J
a
v
a
S
c
r
i
p
t
C
o
r
e
(
J
S
C
)
J
a
v
a
S
c
r
i
p
t
E
n
g
i
n
e
d
o
c
s
h
t
t
p
s
:
/
/
j
a
.
w
i
k
i
p
e
d
i
a
.
o
r
g
/
w
i
k
i
/
W
e
b
K
i
t
#
J
a
v
a
S
c
r
i
p
t
C
o
r
e
4
段
変
速
ギ
ア
r
e
f
L
L
I
n
t
単
な
る
b
y
t
e
c
o
d
e
生
成
B
a
s
e
l
i
n
e
J
I
T
D
F
G
J
I
T
デ
ー
タ
フ
ロ
ー
に
基
づ
く
最
適
化
を
施
す
主
に
戻
り
地
の
方
チ
ェ
ッ
ク
な
ど
を
行
っ
て
最
適
化
F
T
L
J
I
T
Related
Sort by
Related
Modified
Created
Last visited
Most linked
Page rank
Title
Links
JavaScript Engine
Baseline JIT
from [JavaScriptCore (JSC)][Sparkplug]と同様のbytecodeから簡単なJIT生成コードを作る
FTL JIT
[JavaScriptCore (JSC)]に含まれる[LLVM]ベースの[JIT Compiler][SSA]による最適化[Turbofan]と同じ立ち位置https://github.com/WebKit/WebKit/blob/main/Source/JavaScriptCore/ftl/FTLJITCode.cpphttps://webkit.org/blog/3362/introducing-the-webkit-ftl-jit/
Bun.js
ReactNativeの仕組み
ちゃんとは調べていない[mrsekut.icon]かなり雑なメモ3つより 構成される[Native/Main Thread][JavaScript Thread]
iOS SimulatorのPerf Monitor
JavaScript Engine
PrimJS
Web Browser
https://developers.google.com/web/updates/2018/09/inside-browser-part1https://thebrowser.company/[Browser engine][JavaScript Engine][Min]
Nova
[JavaScript Engine], [Wasm Engine][website https://trynova.dev/][github https://github.com/trynova/nova][Rust実装]
Kiesel
Bos JS
https://boajs.dev/[Rust実装]の[JavaScript Engine]https://zenn.dev/itte/articles/5c8e5c191e386b
LibJS
https://serenityos.github.io/libjs-website/[JavaScript Engine]
V8
[Google製]の[JavaScript Engine][C++実装]の高速なインタプリタ[Lars Bak]がメインの開発者https://chromium.googlesource.com/v8/v8.git[github https://github.com/v8/v8]
JavaScript Runtime
ServiceWorker
Scripting
from [Web BrowserのRenderingの流れ]jsコードを[JavaScript Engine]に引き渡して実行する字句解析してトークン列を作成構文解析して[AST]を作成コンパイル
Hermes
[React Native]用の[JavaScript Engine][Meta製]FlowやCommonJSを解釈して実行できる[ExpoでHermesを使う][github https://github.com/facebook/hermes]
QuickJS
バイナリを吐く[JavaScript Engine]開発者は[Fabrice Bellard][github https://github.com/ldarren/QuickJS][website https://bellard.org/quickjs/]サイズが小さい
JerryScript
JavaScriptのLayer
[JavaScript Runtime][JavaScript Engine]参考[https://docs.google.com/presentation/d/1x2clfAPR9F83cBcmztFRXMnUw3pFX8QGdmXTMcIph4Y/edit#slide=id.p High Performance JavaScript - Google スライド]
WebView
iOSには2つある[WKWebView]新しいこっちの方が高速[Nitro]
JSI
[/ JavaScript Interface]JSからC++コードを呼べる[Hermes]や[react-native-v8]が使っているhttps://github.com/facebook/react-native/tree/master/ReactCommon/jsi[JavaScript Engine]のwrapper
SpiderMonkey
[FireFox製]の[JavaScript Engine][スタックマシン]バイトコード命令列https://developer.mozilla.org/ja/docs/Mozilla/Projects/SpiderMonkey/Internals/Bytecode
Ceylon
[Red Hat製][JVM]と[JavaScript Engine]上で動作syntaxはほぼ[Java]オブジェクト指向と関数型2017/8/21リリース
Google Chrome
[Google製]のブラウザ[Chromium]をベースに実装されているGoogle ChromeはOSSではない[Browser engine]は[Blink][JavaScript Engine]は[V8]
Servo
https://github.com/servo/servo[Rust実装]の[JavaScript Engine]
New Links
LLInt
DFG JIT
Created
5 years ago
by
mrsekut
Updated
3 years ago
by
mrsekut
Views: 80
Page rank: 11.8
Copy link
Copy readable link
Start presentation
Hide dots
JavaScriptCore (JSC)
JavaScript Engine
docs
https://ja.wikipedia.org/wiki/WebKit#JavaScriptCore
4段変速ギア
ref
LLInt
単なるbytecode生成
Baseline JIT
DFG JIT
データフローに基づく最適化を施す
主に戻り地の方チェックなどを行って最適化
FTL JIT